Say that itemA == itemB and that itemB == itemC. How many objects are there?

A good answer might be:

Just one object (and three reference variables, each referring to it.)

The equals() Method

You have previously seen the equals( String ) method of class String.

The equals( String ) method of class String tests if two Strings contain the same characters.

The equals( String ) method looks at objects. It detects "equivalence". The == operator detects "identity". For example,

String strA;  // first object
String strB;  // second object
 
strA   = new String( "The Gingham Dog" );   
strB   = new String( "The Gingham Dog" );   

if ( strA.equals( strB  )  ) 
  System.out.println( "This WILL print.");

if ( strA == strB ) 
  System.out.println( "This will NOT print.");

In this example, there are two objects (each object has its own identity, so == reports false). Each object contains equivalent data (so equals() reports true).

QUESTION 19:

If you made a photocopy of a sheet of paper, you would have two sheets of paper.

  1. Are the sheets of paper separatate objects?
  2. Is the first sheet == the second sheet?
  3. Is the data on each sheet the same as on the other?
  4. Is the first sheet equals() to the second sheet?